08. 实现

实现:迭代策略评估

你可以在下方找到迭代策略评估的伪代码。

注意:只要对于每个状态 s\in\mathcal{S}v_\pi(s) 是有限的,策略评估就保证会收敛于策略 \pi 对应的状态值函数。对于有限的马尔可夫决策流程 (MDP),只要满足以下条件之一,就保证会收敛:

  • \gamma < 1,或
  • 如果智能体以任何状态 s\in\mathcal{S} 开始,并且遵守 \pi,就保证会最终达到终止状态。

请在下个部分完成 Dynamic_Programming.ipynb第 0 部分:探索 FrozenLakeEnv第 1 部分:迭代策略评估。请记得保存内容!

你可以查看 Dynamic_Programming_Solution.ipynb 的相应部分,检查你的答案是否正确。(为了访问此文件,你只需点击左上角的“jupyter”即可返回 notebook 信息中心。

‘要找到 `Dynamic_Programming_Solution.ipynb`,请返回 notebook 信息中心。’

‘要找到 Dynamic_Programming_Solution.ipynb,请返回 notebook 信息中心。’

(可选)关于收敛条件的其他注释

为了直观地了解收敛条件为何很合理,思考下两个条件都不满足的情形,因此:

  • \gamma = 1,以及
  • 具有状态 s\in\mathcal{S},如果智能体从该状态开始,则遵守策略 \pi 的话,它将始终不会遇到终止状态。

在这种情况下,

  • 奖励没有折扣
  • 某个阶段可能永远不会结束。

那么迭代策略评估可能不会收敛,这是因为状态值函数可能定义不合理!为此,注意在此情形下,计算状态值可能需要将无穷多的(预期)奖励相加,和可能不会收敛

我们来举一个具体的例子,假设某个 MDP:

  • 具有两个状态 s_1s_2,其中 s_2 是终止状态
  • 具有一个动作 a注意:只有一个动作的 MDP 还可以称之为马尔可夫奖励流程 (MRP)
  • p(s_1,1|s_1, a) = 1

在这种情况下,假设智能体的策略 \pi 是仅“选择”可以执行的动作,因此 \pi(s_1) = a。假设 \gamma = 1。根据一步动态特性,如果智能体从状态 s_1 开始,它将始终保持该状态,永远不会遇到终止状态 s_2

在这种情况下,v_\pi(s_1) 定义不合理。为此,注意 v_\pi(s_1) 是经历状态 s_1 之后的(预期)回报,并且

v_\pi(s_1) = 1 + 1 + 1 + 1 + …

发散为正无穷。(请花时间消化这段内容,并明白如果在此示例中,其中一个条件满足了,那么 v_\pi(s_1) 将定义合理。作为可选下一步,如果你想从数学角度满足这一条件,建议你复习几何级数负二项分布。)